//{ "allowAliases": "in-intersections" }
// primitives
type Foo1 = 'a';

type Foo2 = 'a' | 'b';

type Foo3 = string;

type Foo4 = string | string[];

// reference types
interface Bar {}
class Baz implements Bar {}

type Foo6 = Bar;

type Foo7 = Bar | Baz;

type Foo8 = 'a' | 'b' | 'c';

type Foo9 = 'a' | ('b' & 'c');

type Foo10 = string;

type Foo11 = string | string[];

interface Bar {}
type Foo14 = Bar;

interface Bar {}
type Foo15 = Bar | {};

type Foo17 = {};